package com.blrs.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.blrs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.blrs.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 【请填写功能名称】对象 receivable
 *
 * @author ruoyi
 * @date 2024-02-29
 */
public class Receivable extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private String id;

    /** 项目id */
    private String projectId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 合同id */
    private String contractId;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String contractNumber;

    /** 客户id */
    private String cusId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String cusName;

    /** 收款银行 */
    @Excel(name = "收款银行")
    private String bankName;

    /** 银行流水号 */
    @Excel(name = "银行流水号")
    private String bankSerial;

    /** 款项 */
    private String payment;

    /** 收款金额 */
    @Excel(name = "收款金额")
    private BigDecimal paidInAmount;

    /** 应收金额 */
    @Excel(name = "应收金额")
    private BigDecimal amount;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private BigDecimal invoicing;

    /** 收款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date collectionTime;

    /** 开票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoicingTime;

    /** 状态 */
    private String status;

    /** 确认人id */
    private Long confirmId;

    /** 确认人 */
    @Excel(name = "确认人")
    private String confirmName;

    /** 备注 */
    @Excel(name = "备注")
    private String note;

    /** 操作人id */
    private Long operateId;

    /** 部门名称 */
    private String departmentName;

    /** 组织机构id */
    private Long organizationId;

    /** 组织机构名称 */
    private String organizationName;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date operateTime;

    /** 创建人id */
    private Long creationId;

    /** 创建人 */
    @Excel(name = "创建人")
    private String creationName;

    /** 归属于 */
    private Long belongTo;
    private Date estimatedCollectionTime;
    private String idPath;
    /** 主分类 */
    private String classificationId;
    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setProjectId(String projectId)
    {
        this.projectId = projectId;
    }

    public String getProjectId()
    {
        return projectId;
    }
    public void setProjectName(String projectName)
    {
        this.projectName = projectName;
    }

    public String getProjectName()
    {
        return projectName;
    }
    public void setContractId(String contractId)
    {
        this.contractId = contractId;
    }

    public String getContractId()
    {
        return contractId;
    }
    public void setContractName(String contractName)
    {
        this.contractName = contractName;
    }

    public String getContractName()
    {
        return contractName;
    }
    public void setContractNumber(String contractNumber)
    {
        this.contractNumber = contractNumber;
    }

    public String getContractNumber()
    {
        return contractNumber;
    }
    public void setCusId(String cusId)
    {
        this.cusId = cusId;
    }

    public String getCusId()
    {
        return cusId;
    }
    public void setCusName(String cusName)
    {
        this.cusName = cusName;
    }

    public String getCusName()
    {
        return cusName;
    }
    public void setBankName(String bankName)
    {
        this.bankName = bankName;
    }

    public String getBankName()
    {
        return bankName;
    }
    public void setBankSerial(String bankSerial)
    {
        this.bankSerial = bankSerial;
    }

    public String getBankSerial()
    {
        return bankSerial;
    }
    public void setPayment(String payment)
    {
        this.payment = payment;
    }

    public String getPayment()
    {
        return payment;
    }
    public void setPaidInAmount(BigDecimal paidInAmount)
    {
        this.paidInAmount = paidInAmount;
    }

    public BigDecimal getPaidInAmount()
    {
        return paidInAmount;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setInvoicing(BigDecimal invoicing)
    {
        this.invoicing = invoicing;
    }

    public BigDecimal getInvoicing()
    {
        return invoicing;
    }
    public void setCollectionTime(Date collectionTime)
    {
        this.collectionTime = collectionTime;
    }

    public Date getCollectionTime()
    {
        return collectionTime;
    }
    public void setInvoicingTime(Date invoicingTime)
    {
        this.invoicingTime = invoicingTime;
    }

    public Date getInvoicingTime()
    {
        return invoicingTime;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setConfirmId(Long confirmId)
    {
        this.confirmId = confirmId;
    }

    public Long getConfirmId()
    {
        return confirmId;
    }
    public void setConfirmName(String confirmName)
    {
        this.confirmName = confirmName;
    }

    public String getConfirmName()
    {
        return confirmName;
    }
    public void setNote(String note)
    {
        this.note = note;
    }

    public String getNote()
    {
        return note;
    }
    public void setOperateId(Long operateId)
    {
        this.operateId = operateId;
    }

    public Long getOperateId()
    {
        return operateId;
    }
    public void setDepartmentName(String departmentName)
    {
        this.departmentName = departmentName;
    }

    public String getDepartmentName()
    {
        return departmentName;
    }
    public void setOrganizationId(Long organizationId)
    {
        this.organizationId = organizationId;
    }

    public Long getOrganizationId()
    {
        return organizationId;
    }
    public void setOrganizationName(String organizationName)
    {
        this.organizationName = organizationName;
    }

    public String getOrganizationName()
    {
        return organizationName;
    }
    public void setCreationTime(Date creationTime)
    {
        this.creationTime = creationTime;
    }

    public Date getCreationTime()
    {
        return creationTime;
    }
    public void setOperateTime(Date operateTime)
    {
        this.operateTime = operateTime;
    }

    public Date getOperateTime()
    {
        return operateTime;
    }
    public void setCreationId(Long creationId)
    {
        this.creationId = creationId;
    }

    public Long getCreationId()
    {
        return creationId;
    }
    public void setCreationName(String creationName)
    {
        this.creationName = creationName;
    }

    public String getCreationName()
    {
        return creationName;
    }

    public Long getBelongTo() {
        return belongTo;
    }

    public void setBelongTo(Long belongTo) {
        this.belongTo = belongTo;
    }

    public Date getEstimatedCollectionTime() {
        return estimatedCollectionTime;
    }

    public void setEstimatedCollectionTime(Date estimatedCollectionTime) {
        this.estimatedCollectionTime = estimatedCollectionTime;
    }

    public String getClassificationId() {
        return classificationId;
    }

    public void setClassificationId(String classificationId) {
        this.classificationId = classificationId;
    }

    public String getIdPath() {
        return idPath;
    }

    public void setIdPath(String idPath) {
        this.idPath = idPath;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("projectId", getProjectId())
                .append("projectName", getProjectName())
                .append("contractId", getContractId())
                .append("contractName", getContractName())
                .append("contractNumber", getContractNumber())
                .append("cusId", getCusId())
                .append("cusName", getCusName())
                .append("bankName", getBankName())
                .append("bankSerial", getBankSerial())
                .append("payment", getPayment())
                .append("paidInAmount", getPaidInAmount())
                .append("amount", getAmount())
                .append("invoicing", getInvoicing())
                .append("collectionTime", getCollectionTime())
                .append("invoicingTime", getInvoicingTime())
                .append("status", getStatus())
                .append("confirmId", getConfirmId())
                .append("confirmName", getConfirmName())
                .append("note", getNote())
                .append("operateId", getOperateId())
                .append("departmentName", getDepartmentName())
                .append("organizationId", getOrganizationId())
                .append("organizationName", getOrganizationName())
                .append("creationTime", getCreationTime())
                .append("operateTime", getOperateTime())
                .append("creationId", getCreationId())
                .append("creationName", getCreationName())
                .toString();
    }
}
